<?php if ( ! defined('EVAPATH')) exit('No direct script access allowed');

/**
 * Eva引导程序
 * 
 * @author bing.peng 
 */

/** 载入公共函数 **/
require(EVAPATH.'Common.php');

/** 载入兼容性处理函数 **/
require(EVAPATH.'Compat.php');

/** 自定义错误处理句柄 **/
set_error_handler('_exception_handler');

/** 加载URI解析处理类 **/
$URI = load_class('URI');

/** action源文件地址 **/
$source = $URI->fetch_source();
/** action类名 **/
$class = $URI->fetch_class();
/** action方法名 **/
$method = $URI->fetch_method();

/** 载入action基类文件 **/
require(EVAPATH.'Eva.php');

/** 系统扩展类 **/
$EXT = load_class('Ext');

$EXT->init($URI->fetch_hooks());

/** 执行前置钩子 **/
$EXT->callHook('before_action');

/** 主体 **/
require(APPPATH . 'actions/' . $source);

$EVA = new $class();

if( $URI->fetch_params() ) {
	call_user_func_array( array(&$EVA, $method), $URI->fetch_params() );
}
else {
	$EVA->$method();
}

echo $EVA->output;

?>